package com.jd.fruit.controller.admin;

import java.io.IOException;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.jd.fruit.common.annotation.Controller;
import com.jd.fruit.common.controller.BaseController;
import com.jd.fruit.common.util.DictUtil;
import com.jd.fruit.common.util.JsonConvertUtil;
import com.jd.fruit.common.util.StringUtil;
import com.jd.fruit.model.Chnl;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Record;

/**
 * 栏目管理
 * 
 * @author lishunfeng
 * 
 */
@Controller("/admin/chnl")
// 这个路径就是页面的路径
public class ChnlController extends BaseController {
	/**
	 * 添加栏目
	 */
	public void add() {
		this.getRequest().setAttribute("oprtype",DictUtil.oprSave);
		render("chnl_add.html");
	}

	/**
	 * 编辑栏目
	 */
	public void detail() {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		Chnl chnl = Chnl.dao.findById(id);
		String parentId = chnl.get("parent_id");
		if (StrKit.notBlank(parentId)) {
			String parentName = Chnl.dao.findById(parentId).get("name");
			getRequest().setAttribute("parentName", parentName);
		}
		this.getRequest().setAttribute("chnl", chnl);
		this.getRequest().setAttribute("oprtype",DictUtil.oprUpdate);
		render("chnl_add.html");// 这个是页面的命名规范
	}

	/**
	 * 删除栏目
	 * 
	 * @throws IOException
	 */
	public void delete() throws IOException {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		boolean ishas = Chnl.dao.isHasChild(id);
		if (ishas) {// 该栏目包含子栏目，无法删除
			this.renderText(DictUtil.hasChild);
			this.renderText(DictUtil.hasChild);
		} else {
			boolean isOk = Chnl.dao.deleteById(id);
			if (isOk) {// 删除成功
				this.renderText(DictUtil.success);
			} else { // 删除失败
				this.renderText(DictUtil.failed);
			}
		}
	}

	/**
	 *保存栏目
	 */
	public void save() {
		Chnl chnl = getModel(Chnl.class);
		String oprtyp=this.getPara("oprtype");
		if(oprtyp.equals(DictUtil.oprSave)){
			chnl.dao.save(chnl);
		}else{
			chnl.update();	
		}
		this.redirect("/admin/chnl/list");
	}

	/**
	 *栏目列表
	 */
	public void list() {
	    Chnl chnl=Chnl.dao;
	    List<Chnl> list=chnl.list();
	    List<Chnl> topList=Chnl.dao.topList();
	    this.getRequest().setAttribute("list", list);
        this.getRequest().setAttribute("topList", topList);
		render("chnl_list.html");
	}
	
	/**
	 * 加载栏目Jason数据
	 * 
	 * @throws IOException
	 */
	public void loadChnlData() {
		String type = getPara("type");
		String result = "";
		JSONArray jsarray = null;
		if (!StrKit.isBlank(type) && type.equals(DictUtil.jsontree)) {
			jsarray = Chnl.dao.loadTree();
			if (jsarray != null) {
				result = jsarray.toJSONString();
			}
		} else {
			result = Chnl.dao.loadTreeGrid();
		}
		renderJson(result);
	}
	
	/**
	 *栏目子栏目json
	 * 
	 * @throws IOException
	 */
	public void childJson(){
		String parentid = this.getPara("parentid");
		Chnl chnl = Chnl.dao;
		List<Record> list = chnl.childList(parentid);
		JSONArray result = JsonConvertUtil.tranformToJSON(list);
		renderJson(result.toJSONString());
	}

}
